// pages/my-edit/my-edit.js
import { request } from '../../utils/axios.js';
const app = getApp();
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {
      id: '',
      username: '',
      openId: '',
      nickname: '',
      avatarUrl: '',
      gender: '',
      phone: '',
      createTime: '',
      updateTime: '',
      passwordHash: ''
    },
    isUsernameDisabled: true // 用户名通常不允许修改
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadUserInfo();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 每次显示页面时重新加载用户信息
    this.loadUserInfo();
  },

  // 加载用户信息
  loadUserInfo() {
    const app = getApp();
    // 先从本地存储获取最新数据
    const storageUserInfo = wx.getStorageSync('userInfo') || {};
    // 然后从全局数据获取
    const globalUserInfo = app.globalData.userInfo || {};
    
    // 合并数据，优先使用本地存储（更可能是最新的）
    const userInfo = { ...globalUserInfo, ...storageUserInfo };
    
    // 更新页面数据
    this.setData({
      userInfo: {
        ...this.data.userInfo,
        ...userInfo
      }
    });
  },

  // 选择头像
  chooseAvatar() {
    const that = this;
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success(res) {
        const tempFilePath = res.tempFilePaths[0];
        
        // 上传头像到服务器
        wx.uploadFile({
          url: 'http://localhost:8080/images', // 后端上传接口
          filePath: tempFilePath,
          name: 'file',
          success(uploadRes) {
            try {
              const data = JSON.parse(uploadRes.data);
              // 更新用户头像URL
              that.setData({
                'userInfo.avatarUrl': data.url // 假设后端返回图片URL
              });
              wx.showToast({
                title: '头像上传成功',
                icon: 'success'
              });
            } catch (e) {
              wx.showToast({
                title: '头像上传失败',
                icon: 'none'
              });
            }
          },
          fail() {
            wx.showToast({
              title: '头像上传失败',
              icon: 'none'
            });
          }
        });
      }
    });
  },

  // 选择性别
  selectGender(e) {
    const gender = e.currentTarget.dataset.gender;
    this.setData({
      'userInfo.gender': gender
    });
  },

  // 处理密码输入事件
  handlePasswordInput(e) {
    const passwordHash = e.detail.value;
    console.log('密码输入值:', passwordHash);
    this.setData({
      'userInfo.passwordHash': passwordHash
    });
  },
  handlePasswordInpute(e) {
    const phone = e.detail.value;
    console.log('输入手机号:', phone);
    this.setData({
      'userInfo.phone': phone
    });
  },
  handlePasswordInputee(e) {
    const nickname = e.detail.value;
    console.log('输入用户名:', nickname);
    this.setData({
      'userInfo.nickname': nickname
    });
  },

  saveUserInfo(){
    const userinfos = this.data.userInfo
    console.log(userinfos);
    
    request.post("/updateUser", userinfos).then(res => {
      console.log("保存成功响应:", res);
      
      // 更新全局数据
      const app = getApp();
      app.globalData.userInfo = userinfos;
      
      // 直接更新本地缓存，这样下次打开页面就能读取到最新数据
      wx.setStorageSync('userInfo', userinfos);
      console.log("用户信息已更新到缓存");
      
      // 显示保存成功提示
      wx.showToast({
        title: '保存成功',
        icon: 'success',
        duration: 2000,
        success: () => {
          // 延迟返回上一页
          setTimeout(() => {
            wx.navigateBack();
          }, 1500);
        }
      });
    }).catch(error => {
      console.error('保存失败:', error);
      wx.showToast({
        title: '保存失败，请重试',
        icon: 'none'
      });
    })
  }

})